ESPNOW 自宅のルーターを使わずにESP32同士を繋いでみる
HTML-код
- Опубликовано: 7 сен 2024
- 今回は、ESP32のESPNOWという機能でESP32同士を繋ぐプログラムを紹介します。
ESPNOWは家のWiFiに繋ぐことなくESP32同士でデータの送受信が可能です。
ESPNOWはESP32の開発環境をインストールするとライブラリが入っているようで個別にライブラリをインストールする必要は無いようです。
ESPNOWは複数のESP32同士を繋ぐことが可能でデバイスは20個程度使用できるようです。
ESP-NOWは大量のデータを送信することはできません。
最大で1パケットあたり250バイトです。
海外では200m位通信が出来た例もあるようですが
今回はLEDの点灯・消灯を行うプログラムを紹介します。
ある程度通信距離が長いのも特徴で、使用範囲が広がりますね。
家庭菜園の土壌湿度管理や屋外の気温・湿度管理、降雨管理、ラジコンのリモコンなどESP32同士がつながると応用が広がります。
【プログラムはブログにあります】
・ブログURL:ameblo.jp/kenj...
【実験結果】
家の中に受信側ESP32を置いて、送信側を屋外からタクトボタンを押した結果、家から20m~30m位までは操作が可能でした。
障害物がなければかなりの距離まで操作可能になると思われます。
ESPNOWの詳細なリファレンスURLはこちらから
(docs.espressif...
【今回の使用材料】
・ESP32 × 2個
・LEDランプ
・タクトスイッチ
・ユニバーサル基盤
・ジャンパー線
下記は関連動画です。
【ESP32の開発環境設定】
・ArduinoIDEにESP32の開発環境をインストール ( • Arduino IDEに ESP32 の開発... )
【ESP32で土壌管理】
・ESP32と土壌湿度センサー。リレーを使って自動で水やり( • ESP32と土壌湿度センサー。リレーを使って... )
【スマホとESP32で土壌管理】
・スマホ、ESP32のBluetoothと土壌センサーで湿度管理( • スマホ、ESP32のBluetoothと土壌... )
【Mit App Inventor関連動画】
・簡単スマホアプリ セットアップと使い方( • スマホアプリが簡単に作れます。MITAPPI... )
#esp32
#espnow
#arduinoIDE
#土壌湿度センサー
#湿度管理
#ルーター
#arduino
#arduino Uno
#Mit App Inventor
プログラミング初心者ですが、教えてください。!
Esp32に送信側と受信側のプログラムをアップロードすると、次のエラーメッセージが出るのですが、どうすれば解決しますか?
'Esp_now_roll_combo' was not declared in this scope
すみません。。
どうしてか分かりませんが、再度アップロードしたら、すんなり動いてくれました!!
有益なことを知れて、いろんなことへ応用してみます!
ありがとうございました!
動画を視聴頂きありがとうございます。
うまく動作したようで良かったです。
これからもお役に立てる動画をアップしたいと思いますのでご視聴よろしくお願いします。
教えてください。プログラムのコピーをしたいのですがそのプログにたどり着けません、「最新の記事」の下に5件の項目があるところまで行けますが、その他はどのようにすれば開けんすか。
すみません。
全てを載せている訳ではありません。
ブログの更新も出来ていないのが現状です。必要なプログラムをお教え頂ければブログに載せたいと思います。
タッチセンサー,磁気センサーについてのプログラムです。すみませんわがままを言って。それからesp-nowについては、お世話になりました。雨降り警報器が順調に動作しています。
お待たせしました。
下記ブログにアップしましたのでご確認ください。
ameblo.jp/kenjii70/entry-12844399574.html
表題のサムネと実際のLEDの配線は違っています。
タッチピンはGPIO13番ピン、またLED制御用にGPIO22番ピンを使用して動作させています。
お忙しいところ有難うございます。さっそくチャレンジします。
すみませんどうしてもエラーが消えません
受信側コードの最後の行、pinMOde(LED_PIN,OUTPUT);でstray'\343in programとなります、
いろいろ試みましたが治りません、教えて頂けませんか。
動画をご視聴ありがとうございます。
記述いただいたコードを見るとpinMOde(LED_PIN,OUTPUT);と
書かれていますがpinMode(LED_PIN,OUTPUT);ではないでしょうか?
すみません間違いです、ご指摘のとうり、pinMode,です。コードすべてをプログからコピペしました。そしてエ。
すみません間違いです、ご指摘のとうり、pinMode,です。コードすべてをプログからコピペしました。そしてエラーがでます。何を間違いをしたのでしょうかおいそがっしいところすみません。
返信
エラーは解消されたのでしょうか?
ブログではpinModeで記載していますが、まだエラーがでますか?
もしまだstray'\343in programが出るようでしたらプログラム内に全角文字が含まれている可能性があります。
ブログ内では、半角スペースを全角で入力している場合が
ありますので、そのあたりを確認してみてください。
いつも拝見させていただいています。
まさに今やりたいことだったので、質問させてもらってもいいですか?
レシーブ側のOnDataRecvは割り込み系の関数ですか?
パターン化したLEDを途中で変更したり
色を変化させたり、
loop()にswitch関数でそれぞれのパターンに飛ぶ
プログラムを作ろうとしているのですが
教えていただけますか?
ちなみに使用するのはトラックです。
当然NET環境はないので、buletoothかWifiか迷っていたとこでした。
いつも動画をご覧いただきありがとうございます。
ESPNOWは、Espressif Systems社制のライブラリで下記にリファレンスが記載されています。
docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_now.html
コメントいただいているOnDataRecv()は
コールバック関数esp_now_register_recv_cb()に登録した関数です。関数名称は適当でかまわないのですが引数はライブラリ側で管理されてます。
詳細は不明ですがコールバック関数をsetup()内で使用宣言することでデータの受信があった場合、コールバック関数で登録された関数OnDataRecv()が呼ばれるようです。
コメントでいただいている処理がどのようにしたいのか詳細が分からないのですが、送信側からLEDの信号を色々なパターン(0、1、2,3・・・)に分けて送信すると、OnDataRecv()で処理が可能と思います。
ただ、トラックに付けたLEDの変更だけというのであれば、ESP32とIRリモコンかESP32とスマホ(Bluetooth)での操作が可能かと思います・・・
ESP32とIRリモコンとスマホ操作は過去動画で紹介していますのでそちらを参考にしてみてはいかがでしょうか。
【家にあるリモコンをESP32用にする】
・ruclips.net/video/mq-aliBJIuk/видео.html
【リモコンでLEDを操作】
・ruclips.net/video/_MeA2T9sEnU/видео.html
【ESP32とスマホのBluetoothを使ってLEDエッジライトを作ろう】
・ruclips.net/video/QP82xVOXBuc/видео.html
詳細をいただければ、分かる範囲で回答させていただきます。
返信ありがとうございます。
まさに送信側から(0,1,2,3,・・・)みたいな感じで送る予定です。
OnDataRecv()内で処理をするとは思いました、LEDの処理のところに当てはめればいいのですよね。
後送信側にはTFTdisplayを取り付けて今のLEDパターンを表示したかったのでこの方法がいいと思いました。
ありがとうございます。
簡単にできる方法でリモコンも考えたいと思います。
@@kenjii70
解決できたようでよかったです。
不明なことがあればコメントください。
bn
間違えて、しまいました。すいませんでした。
ご視聴ありがとうございます。